package org.jfsm.core;

public abstract class FSMSignalMHandler<C extends FSMContext, M> {

    /**
     * Handle signal with <code>msg</code> on context <code>ctx</code>.
     * 
     * @param ctx
     *            Context
     * @param msg
     *            Message
     * @return a <code>Signal</code> directly or <code> a <code>RetSignal</code>
     *         created by calling <code>SignalM.asNextSignal(msg)</code>
     */
    public abstract RetSignal handle(C ctx, M msg);

}
